﻿using System.Collections.Generic;
using System.Xml.Serialization;

namespace Viettel.VOFFICE.Web.Helpers
{
    public class DocGrid
    {
        /// <summary>
        /// Danh sách list các bảng dữ liệu của csdl
        /// </summary>
        [XmlElement("tables")]
        public TableList TableList { get; set; }
    }

    /// <summary>
    /// List các bảng của docinbox
    /// </summary>
    public class TableList
    {
        //tu 3 đến 8 và 11 là không có ở cty
        [XmlElement("table")]
        public List<TableItem> TableItems { get; set; }
    }

    /// <summary>
    /// Tên của các bảng trong csdl
    /// </summary>
    [XmlRoot("tables")]
    public class TableItem
    {
        [XmlAttribute("id")]
        public string Id { get; set; }
        [XmlAttribute("name")]
        public string Name { get; set; }
        [XmlElement("join")]
        public string Join { get; set; }
        [XmlElement("as")]
        public string As { get; set; }
        [XmlElement("description")]
        public Description Description { get; set; }
        [XmlElement("fields")]
        public TableFieldList TableFieldList { get; set; }
    }

    /// <summary>
    /// List các trường của bảng
    /// </summary>
    public class TableFieldList
    {
        [XmlElement("field")]
        public List<TableField> TableFields { get; set; }
    }

    /// <summary>
    /// Mô tả các trường của bảng
    /// </summary>
    public class TableField
    {
        [XmlAttribute("id")]
        public string Id { get; set; }
        [XmlAttribute("name")]
        public string Name { get; set; }
        [XmlAttribute("type")]
        public string DataType { get; set; }
        [XmlAttribute("as")]
        public string FieldAs { get; set; }
        [XmlElement("description")]
        public Description FieldDescription { get; set; }
        [XmlIgnore]
        public string TableAs { get; set; }
        [XmlIgnore]
        public string Join { get; set; }
    }

    /// <summary>
    /// Mô tả các  bảng
    /// </summary>
    public class Description
    {
        [XmlAttribute("content")]
        public string Content { get; set; }
        [XmlAttribute("region")]
        public string Region { get; set; }
        [XmlAttribute("title")]
        public string Title { get; set; }
    }
    #region CÁC THUỘC TÍNH ĐÃ ĐƯỢC CHỌN
    [XmlRoot("fields")]
    public class SelectedList
    {
        [XmlElement("field")]
        public List<SelectedField> SelectedFields { get; set; }
    }

    public class SelectedField
    {
        [XmlAttribute("id")]
        public string Id { get; set; }
        [XmlAttribute("description")]
        public string Description { get; set; }
        [XmlAttribute("selected")]
        public bool Selected { get; set; }
    }
    #endregion
}